Computer-aided design (CAD) drawings prepared by architects, engineers, designers, planners, and the like require large amounts of data to be stored in files. CAD software includes an API to access the large quantities of data. Applications such as, e.g., MicroStation® products, which are developed by Bentley Systems, Inc., Exton, Pa. U.S.A., and AutoCAD® products, which are developed by Autodesk, Inc., San Rafael, Calif., U.S.A. are typical of such CAD software, which may be used in the Engineering, Construction, and Operations (ECO) marketplace.
Many CAD software packages are outfitted with graphical user interfaces (GUIs). Existing GUIs are similar to those of common office productivity software, such as word-processing programs, in that they provide a large central window showing whatever is being worked on, surrounded by pull-down menus and tool icons. To assist users to locate and utilize functionality of a given software application, a user interface containing a plurality of generic functionality controls is typically provided along an upper, lower or side edge of a displayed workspace in which the user may enter, copy, manipulate and format text or data. Such functionality controls often include selectable buttons with such names as “file,” “edit,” “view,” “insert,” “format,” and the like. Typically, selection of one of these top-level functionality buttons, for example “format,” causes a drop-down menu to be deployed to expose one or more selectable functionality controls associated with the top-level functionality, for example “font” under a top-level functionality of “format.”
After a user selects a desired functionality control, or if the user moves the mouse cursor to a different location, the drop-down menu typically disappears. If the user determines that functionality of the first drop-down menu was the desired functionality, the user must remember which top-level functionality was selected, reselect that functionality and then find the desired functionality control all over again. Accordingly, in order to use the functionality of a given software application, the user must know the desired functionality is available under one of the selectable buttons, or the user must select different top-level functionalities until the desired specific functionality is located.
Additionally, a user may be performing a task that requires many different types of tools provided by the software program. The tools used in completing the task may not be generally related to each other, except for being used to perform the task. For example, a task may require one tool in the “insert” category and another tool in the “format” category. Therefore, the user must search in different categories for the various tools needed to accomplish the task.
Such a method of searching for desired functionality is cumbersome and time-consuming. This type of GUI can be difficult to use because it is not designed to make any particular task easy.
Thus, there is a need for a system and method to customize a user interface to include task based data.